package ClassesBasicas;

import java.sql.Date;
import java.sql.Time;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;

@Entity
@Table(name= "agenda")
public class Agenda{
	@Id
	@GeneratedValue
	@Column (name="codigo")
	private int codigo;
	
	@Column (name="data_agenda")
	private Date data;

	@Column (name="hora_agenda")
	private Time hora;
	
	@ManyToOne(fetch = FetchType.EAGER)	
	@JoinColumn(name = "atendente_matricula", 
						insertable = true, updatable = true)
	@Fetch(FetchMode.JOIN)
	@Cascade(CascadeType.SAVE_UPDATE)
	private Atendente atendente;
	
	@OneToOne
	@JoinColumn(name = "codigo_pessoa")
	private Paciente paciente;
	
	public Agenda(){
	}
	
	public Agenda(Date data, Time hora, int codigo, Atendente atendente,
			Paciente paciente) {
		super();
		this.data = data;
		this.hora = hora;
		this.codigo = codigo;
		this.atendente = atendente;
		this.paciente = paciente;
	}
	
	public Atendente getAtendente() {
		return atendente;
	}

	public void setAtendente(Atendente atendente) {
		this.atendente = atendente;
	}

	public Paciente getPaciente() {
		return paciente;
	}

	public void setPaciente(Paciente paciente) {
		this.paciente = paciente;
	}

	public Date getData() {
		return data;
	}
	public void setData(java.util.Date date) {
		this.data = (Date) date;
	}
	public Time getHora() {
		return hora;
	}
	public void setHora(Time hora) {
		this.hora = hora;
	}

	public int getCodigo() {
		return codigo;
	}

	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}
	
}
